Skip to content

White label пилот: регистрация, веса и общий рейтинг команд - #540

Open
TThanos3000 wants to merge 10 commits into
devfrom
codex/white-label-registration-20261110
Open

TThanos3000 wants to merge 10 commits into
devfrom
codex/white-label-registration-20261110

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

White label поддерживает бренд клиента, короткую регистрацию по почте/паролю, приглашения по полной почте, единый клиентский вход и процентные критерии кейса. Добавлен согласованный экран общего командного рейтинга: кейс из 100 + квиз из 100 = итог из 200, только организатору.

Общий рейтинг установлен и проверен на https://pilot.procollab.ru 13 ноября: runtime 3c21fbc, эта сборка 3241381, tooling 7a8e6c6. Квиз и его дизайн остаются отдельной задачей.

Зачем

Организатору нужен единый результат команды с понятным ожиданием недостающих этапов. Spec и audit O11, backend/админка/выгрузка: PROCOLLAB-github/api#861. Общая функция весов отдельно выделена в API #862 / Angular #541.

Реализация

  • В существующем «Оценивании» появился пункт «Общий рейтинг». Он доступен для конкурсного legacy_project; ProgramSolution не смешивается с Project. Прямой переход в неподдерживаемом контуре объясняет ограничение без запроса рейтинга.
  • Новый domain model → port → repository → use-case → HTTP adapter. Баллы, сумма, готовность и места приходят с сервера, Angular их не пересчитывает. Ноль показывается как 0,00, незавершенный итог — «Ожидает», места еще нет; виден счетчик полных экспертных оценок.
  • Поиск с debounce и статус сохраняются в URL/reload. switchMap отменяет устаревшее чтение; смена программы скрывает прежние строки и отменяет старую выгрузку. До применения нового фильтра предыдущая выборка не скачивается.
  • Excel выгружает текущую серверную выборку. Ошибка чтения очищает данные и запрещает выгрузку; retry сохраняет фильтры. Старый Results компонент не менялся.
  • Сохраняются pilot configuration, brand/instance/cookie isolation, email proof, auth returnUrl и scoped email lookup. Существующий критерийный редактор/экспертная форма работают с процентами и server lock; C00 1.22.0 совместимость сохраняется.

API

Нужен API #861 с GET management/overall-results/ и /export/, добавочной partner_programs 0045 и прежними миграциями весов. Query params snake_case, null/zero и ID участия/проекта сохранены. Общий рейтинг organizer-only, без публичного ввода баллов.

Полный pilot package закреплен на Angular 3241381. Живой UI обновлен с 75f41a5/source 7657082 на 3241381/runtime 3c21fbc. Исторические updater весов/auth не устанавливают общий рейтинг. В API #861 подготовлен отдельный проверенный upgrade/rollback (tooling 7a8e6c6): runtime 3c21fbc и эта точная сборка 3241381 поверх 7657082/75f41a5; только 0045 и стандартные права, те же image/env/лимиты/data, backup/rollback без pg_restore/drop. Владелец выполнил SSH check/apply/status, active подтвержден повторно; агент проверил опубликованный UI/API. Frontend миграции не выполняет.

UI

Владелец подтвердил конкретные desktop/mobile макеты 12 ноября: «да норм». Сохранены ProgramManagement/Results, Mont, shared Button/Field/Icon/TransientNotice и существующие tokens. Новых DS primitives или redesign нет.

Семантическая таблица на desktop, строки с показателями на узком контейнере, перенос длинной команды, видимый фокус и мобильные кнопки 44px. Проверены loading/empty/no results/error/403/404/409, настоящий ноль, ожидание, success/disabled. Figma-экран не создавался; DS reference и доступные источники записаны в spec.

Permissions

Права авторитетно проверяет backend. Участник, эксперт, гость и чужой manager не получают рейтинг/export. UI не записывает баллы. В Django admin чтение/фильтры/экспорт используют тот же серверный расчет, результат квиза readonly.

Проверки

  • Живой пилот, 13 ноября: 11 Chromium сценариев PASS на опубликованном UI/API без подмены данных. Вход/deep link, legacy notice, поиск/статус/reload, 1440/390, навигация Results/criteria, ошибка/retry, logout, отказ участнику и реальные Django admin/Excel/readonly quiz outcomes. JS errors 0, программа не изменялась, внешние placeholder изображения блокировались.
  • 10 HTTPS/API checks: 5 измененных файлов совпали по SHA256, API 100+100, фильтры, API/admin XLSX, запрет гостю/участнику/эксперту, команда/сдача/PDF/критерии/dev сохранены. После удаления только QA ZIP (204 → 404) еще 3 cleanup checks PASS. Backup overall-d572cb63a116 сохранен.
  • 108 Vitest tests / 5 files: overall component, adapter, management, прежний Results и management service. После уточнения shared select повторены 72 component/management tests.
  • TypeScript solution contract, scoped ESLint/Prettier, Stylelint нового SCSS, diff checks.
  • build:pr, финальные pilot и production builds PASS. Существующие Sass/CommonJS/budget warnings без ошибок.
  • 13 Chromium сценариев с compiled pilot и настоящими локальными Django/PostgreSQL: loading, 200/zero/pending, server places, search/status/reload, filtered XLSX, reset/no results, 1440/820/390, длинная команда, активная навигация/keyboard, network failure/retry, прежний Results, empty/legacy/unsupported и чужой/гостевой доступ. Page errors 0.
  • XLSX из Angular проверен openpyxl: выбранная команда, глобальное место 2, 80+90, формула, Arial 10/A2. Native Excel engine не запускался.
  • Layout detector 0 findings; visual review исправил ширину desktop колонок, перенос «Место» и использование shared select.
  • Пилотный installer API #861: 68 deploy tests, реальные PostgreSQL migration/старый API и disposable Docker config/rollback proofs, финальный microbundle/unpacker roundtrip. Новый UI опубликован и принят в текущем legacy состоянии.
  • Backend runtime 515862c: 77 профильных tests, migration preservation proof, локальные HTTP/admin проверки и зеленый PostgreSQL/Docker CI — API #861.
  • Прежний установленный auth UI 75f41a5: 8 HTTPS / 11 browser / 3 cleanup checks; веса — 57 профильных tests и полный локальный экспертный расчет 79,75. Evidence относится к указанным runtime revisions, не к новой живой установке.

Acceptance criteria

  • WL13–WL16, бренд/изоляция/регистрация/приглашения и W08–W09 весов — прежние specs/audit.
  • O11 — дизайн согласован, Angular реализован, состояния/права/контракт/build/browser подтверждены.
  • O01–O10 — совместный серверный audit в API spec.
  • Установка общего рейтинга и приемка текущего состояния живого пилота.
  • Интеграция с настоящим квизом — отдельная задача после его дизайна.

Не проверено

Настоящий квиз и завершенные боевые итоги на пилоте, нагрузка 100 участников, SMTP, native Excel пересчет и приемка клиента. В browser QA блокировались внешние запросы; 7 попыток загрузки существующей картинки-заглушки другого виджета не доставлялись. Ответы рейтинга не подменялись, ошибки имитировались только задержкой/обрывом локального запроса. QA credentials/скриншоты не входят в Git.

Риски / migration

Backend и 0045 установлены до нового UI, оба этапа и HTTPS приемка завершены. Настройки кейса и тестовые итоги на живом пилоте не создавались. Старые программы сохраняют legacy расчет, веса не включаются автоматически. В пилоте пока только текстовый «Комментарий»: экран корректно предлагает настроить числовые критерии с весами 100% и отключает Angular Excel. Для рабочего итога нужны согласованные критерии/веса и результат настоящего квиза. Ветка готова к review/merge в dev с соблюдением порядка; merge и deployment этот PR не выполняет.

@TThanos3000 TThanos3000 changed the title White label: короткая форма регистрации и сессия на домене клиента White label: изолированная pilot сборка и бренд клиентского кабинета Nov 10, 2026
@TThanos3000 TThanos3000 changed the title White label: изолированная pilot сборка и бренд клиентского кабинета White label: pilot сборка и приглашение участников без ФИО Nov 11, 2026
@TThanos3000 TThanos3000 changed the title White label: pilot сборка и приглашение участников без ФИО White label пилот: регистрация, приглашения и веса критериев Nov 11, 2026
@TThanos3000 TThanos3000 changed the title White label пилот: регистрация, приглашения и веса критериев White label пилот: единый вход, регистрация, приглашения и веса Nov 12, 2026
@TThanos3000 TThanos3000 changed the title White label пилот: единый вход, регистрация, приглашения и веса White label пилот: регистрация, веса и общий рейтинг команд Nov 12, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant